openEuler快速部署Zabbix7.2监控系统

194次阅读
没有评论

共计 7712 个字符,预计需要花费 20 分钟才能阅读完成。

一、环境信息

用途 IP 地址 操作系统 备注
zabbix-server 192.168.7.231 openEuler22.03 LTS SP3 Zabbix 7.2 LTS 版本,容器部署
zabbix-agent 192.168.10.202 Windows Server 2008R2 SP1 Zabbix-agent for windows

二、基础包安装

dnf install tar vim

三、Docker 部署

2.1 Docker 二进制包下载

curl -LO https://download.docker.com/linux/static/stable/x86_64/docker-28.1.1.tgz

2.2 安装 Dockers

tar xzvf docker-28.1.1.tgz
cp docker/* /usr/bin/
which docker

2.3 编写 docker.service 文件

执行 vim /etc/systemd/system/docker.service 命令,编辑文件添加以下内容:

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target

[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target<code class='language-default'>

执行:wq 命令保存即可。

备注:如果想要修改 docker 默认存储路径,不推荐此方式,建议保留 /var/lib/docker,使用软连接的方式。

2.4 添加可执行权限

chmod +x /etc/systemd/system/docker.service

2.5 添加 docker 自启动

systemctl daemon-reload
systemctl start docker
systemctl enable docker

2.6 配置镜像加速器

创建 /etc/docker 配置文件目录:

编辑 vim /etc/docker/daemon.json(不存在则创建),添加以下内容:

{
&#8220;registry-mirrors&#8221;: [
&#8220;https://docker.1ms.run&#8221;,
&#8220;https://docker.xuanyuan.me&#8221;
],
&#8220;exec-opts&#8221;: [&#8220;native.cgroupdriver=systemd&#8221;]
}

2.7 重启 docker

systemctl restart docker

三、docker-compose 部署

3.1 查看 docker-compose 最新版本号

访问 docker-compose GitHub Releases (如 v2.36.1)。

3.2 下载 docker-compose-linux-x86-64

替换以下命令中的版本号:
curl -L &#8220;https://github.com/docker/compose/releases/download/v2.36.1/docker-compose-linux-x86_64&#8221; -o /usr/local/bin/docker-compose

3.3 赋予可执行权限

chmod +x /usr/local/bin/docker-compose

四、安装部署 zabbix-server

4.1 zabbix7.2 新功能描述

4.2 zabbix7.2 安装要求

官方网站:安装要求

4.3 从容器中安装 zabbix

4.3.1 安装前阅读

openEuler 快速部署 Zabbix7.2 监控系统

此处选择 Mysql+nginx web 的组件。运行以下命令安装:

docker pull zabbix/zabbix-server-mysql
docker pull zabbix/zabbix-web-nginx-mysql

4.3.2 初始配置

该示例示范了如何运行 MySQL 数据库支持的 Zabbix Server、基于 Nginx Web 服务器的 Zabbix Web 界面和 Zabbix Java 网关。

1、创建专用于 Zabbix 组件容器的网络:

docker network create &#8211;subnet 172.20.0.0/16 &#8211;ip-range 172.20.240.0/20 zabbix-net<code class='language-default'>

2、创建 zabbix 工作目录

mkdir -p /home/application/zabbix<code class='language-default'>

3、创建 docker-compose.yml 文件
添加以下内容:



services:
zabbix-server:
image: zabbix/zabbix-server-mysql:latest
container_name: zabbix-server
restart: unless-stopped
ports:
&#8211; &#8220;10051:10051&#8221; # Zabbix Server 端口
environment:
&#8211; DB_SERVER_HOST=zabbix-mysql
&#8211; MYSQL_DATABASE=zabbix
&#8211; MYSQL_USER=zabbix
&#8211; MYSQL_PASSWORD=zabbix
&#8211; MYSQL_ROOT_PASSWORD=tools9012
volumes:
&#8211; zabbix_server_data:/var/lib/zabbix
depends_on:
&#8211; zabbix-mysql
networks:
&#8211; zabbix-net

zabbix-mysql:
image: mysql:8.0-debian
container_name: zabbix-mysql
restart: unless-stopped
environment:
&#8211; MYSQL_DATABASE=zabbix
&#8211; MYSQL_USER=zabbix
&#8211; MYSQL_PASSWORD=zabbix
&#8211; MYSQL_ROOT_PASSWORD=tools9012
&#8211; MYSQL_ALLOW_EMPTY_PASSWORD=no
volumes:
&#8211; /usr/share/zoneinfo:/usr/share/zoneinfo:ro
&#8211; zabbix_mysql_data:/var/lib/mysql
&#8211; ./mysql/run:/var/run/mysqld
command: [
&#8216;&#8211;default-authentication-plugin=mysql_native_password&#8217;,
&#8216;&#8211;character-set-server=utf8mb4&#8217;,
&#8216;&#8211;collation-server=utf8mb4_bin&#8217;,
&#8216;&#8211;pid-file=/var/run/mysqld/mysqld.pid&#8217;
]
networks:
&#8211; zabbix-net
healthcheck:
test: [&#8220;CMD&#8221;, &#8220;mysqladmin&#8221;, &#8220;ping&#8221;, &#8220;-h&#8221;, &#8220;localhost&#8221;]
interval: 5s
timeout: 3s
retries: 5

zabbix-web-nginx-mysql:
image: zabbix/zabbix-web-nginx-mysql:latest
container_name: zabbix-web
restart: unless-stopped
ports:
&#8211; &#8220;8080:8080&#8221; # Web 访问端口
environment:
&#8211; DB_SERVER_HOST=zabbix-mysql
&#8211; MYSQL_DATABASE=zabbix
&#8211; MYSQL_USER=zabbix
&#8211; MYSQL_PASSWORD=zabbix
&#8211; ZBX_SERVER_HOST=zabbix-server
&#8211; PHP_TZ=Asia/Shanghai
depends_on:
&#8211; zabbix-mysql
&#8211; zabbix-server
networks:
&#8211; zabbix-net

zabbix-agent:
image: zabbix/zabbix-agent:latest
container_name: zabbix-agent
restart: unless-stopped
environment:
#- ZBX_HOSTNAME=zabbix-agent
&#8211; ZBX_HOSTNAME=Zabbix server
# &#8211; ZBX_SERVER_HOST=zabbix-server
&#8211; ZBX_SERVER_HOST=zabbix-server,172.19.0.1
&#8211; ZBX_SERVERACTIVE=zabbix-server
ports:
&#8211; &#8220;10050:10050&#8221; # Agent 端口
networks:
&#8211; zabbix-net

volumes:
zabbix_server_data:
zabbix_mysql_data:

networks:
zabbix-net:
driver: bridge
<pre><code class='language-default'>


4、运行 zabbix-server

cd /home/application/zabbix
# 拉取镜像并启动容器(后台运行)docker-compose up -d

# 查看运行状态
docker-compose ps<code class='language-default'>

5、验证登录 zabbix-server web 控制台
WEB 登录地址:http://192.168.7.231:8080
默认密码:Admin/zabbix

五、安装部署 z abbix-agent

访问 https://www.zabbix.com/cn/download_agents,根据计算机的 操作系统类型及版本下载对应的 agent 安装部署即可。
openEuler 快速部署 Zabbix7.2 监控系统

5.1 Windows 环境安装 agent

1、下载
2、解压
将 zabbix_agent-7.2.7-windows-i386.zip 文件解压后的 zabbix_agent-7.2.7-windows-i386 文件夹拷贝至 C:Program Files,并重命名 zabbix_agent-7.2.7-windows-i386 为 zabbix_agent,如以下目录结构:
openEuler 快速部署 Zabbix7.2 监控系统
3、编辑 zabbix_agentd.conf 文件
打开 C:Program Fileszabbix_agentconfzabbix_agentd.conf,执行以下修改:
将 LogFile=c:zabbix_agentd.log 修改为 LogFile=C:Program Fileszabbix_agentzabbix_agentd.log
将 Server=127.0.0.1 修改为 Server=192.168.7.231
去掉 ListenPort=10050 前的 #
修改 ServerActive=127.0.0.1 为 ServerActive=192.168.7.231
将 Hostname=Windows host 修改为 Hostname=Cvm_vCenter
修改项的示例:
LogFile=C:Program Fileszabbix_agentzabbix_agentd.log # 日志文件路径
Server=192.168.7.231 # Zabbix Server 的 IP 地址
ServerActive=192.168.7.231 # 主动检查使用的 Server IP
Hostname=Cvm_vCenter # 必须与 Zabbix Web 界面中配置的主机名一致

4、安装 zabbix-agent 服务
将 C:Program Fileszabbix_agentconfzabbix_agentd.conf 文件拷贝至 C:Program Fileszabbix_agentbin 目录。
使用命令提示符安装 Zabbix Agent 服务:

cd /d C:Program Fileszabbix_agentbin
zabbix_agentd.exe -c zabbix_agentd.conf -i

5、启动服务
安装完成后,启动 Zabbix Agent 服务。

net start &#8220;Zabbix Agent&#8221;

6、添加主机
登录 web 界面 -> 数据采集 -> 添加主机。
openEuler 快速部署 Zabbix7.2 监控系统

5.2 Linux 环境安装 agent

1. 下载 Zabbix Agent
openEuler 快速部署 Zabbix7.2 监控系统
wget https://cdn.zabbix.com/zabbix/binaries/stable/7.2.4/zabbix_agent-7.2.4-linux-3.0-i386-static.tar.gz
2. 解压安装包
tar -xzvf zabbix_agent-7.2.4-linux-3.0-i386-static.tar.gz
3. 创建必要的用户和目录
groupadd zabbix
useradd -g zabbix -s /sbin/nologin zabbix
mkdir -p /etc/zabbix
mkdir -p /var/log/zabbix
chown zabbix:zabbix /var/log/zabbix
4. 复制文件到相应位置
cp sbin/zabbix_agentd /usr/sbin/
cp conf/zabbix_agentd.conf /etc/zabbix/
5. 配置 Zabbix Agent
编辑配置文件:
vi /etc/zabbix/zabbix_agentd.conf<code class='language-default'>

修改以下关键参数:

Server=&lt;ZABBIX_SERVER_IP&gt;
ServerActive=&lt;ZABBIX_SERVER_IP&gt;
Hostname=&lt; 本机主机名 &gt;
LogFile=/var/log/zabbix/zabbix_agentd.log
PidFile=/var/run/zabbix/zabbix_agentd.pid<code class='language-default'>

6. 创建 systemd 服务文件

vi /etc/systemd/system/zabbix-agent.service

添加以下内容:[pre][Unit]
Description=Zabbix Agent
After=syslog.target
After=network.target

[Service]
Environment=&#8221;CONFFILE=/etc/zabbix/zabbix_agentd.conf&#8221;
EnvironmentFile=-/etc/sysconfig/zabbix-agent
Type=forking
Restart=on-failure
PIDFile=/var/run/zabbix/zabbix_agentd.pid
KillMode=control-group
ExecStart=/usr/sbin/zabbix_agentd -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
User=zabbix
Group=zabbix

[Install]
WantedBy=multi-user.target<code class='language-default'>

7. 启动并启用服务

systemctl daemon-reload
systemctl start zabbix-agent
systemctl enable zabbix-agent<code class='language-default'>

8. 检查服务状态

systemctl status zabbix-agent
netstat -tulnp | grep zabbix<code class='language-default'>

9. 防火墙配置(如果需要)

firewall-cmd &#8211;permanent &#8211;add-port=10050/tcp
firewall-cmd &#8211;reload<code class='language-default'>

10. 验证安装
在 Zabbix Server 端尝试连接测试:

zabbix_get -s &lt;agent_ip&gt; -k &#8220;agent.ping&#8221;

附录 常见问题

1、web 界面提示“数据库中表的字符集或排序规则不受支持……”

问题描述:

web 界面提示,数据库中表的字符集或排序规则不受支持:acknowledges, actions, alerts, auditlog, autoreg_host, conditions, config, config_autoreg_tls, connector, connector_tag。

解决方案:

即时解决方案(不重启容器),动态生成并执行 SQL。

# 进入 MySQL 容器
docker exec -it zabbix-mysql mysql -uroot -p

— 在 MySQL 命令行中执行以下语句
USE zabbix;
SET @database = ‘zabbix’;
SET @charset = ‘utf8mb4’;
SET @collation = ‘utf8mb4_bin’;

DELIMITER $$
CREATE PROCEDURE convert_all_tables()
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE tbl_name VARCHAR(255);
DECLARE cur CURSOR FOR SELECT table_name FROM information_schema.tables WHERE table_schema = @database;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

OPEN cur;
read_loop: LOOP
FETCH cur INTO tbl_name;
IF done THEN
LEAVE read_loop;
END IF;
SET @sql = CONCAT(‘ALTER TABLE `’, tbl_name, ‘` CONVERT TO CHARACTER SET ‘, @charset, ‘ COLLATE ‘, @collation);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END LOOP;
CLOSE cur;
END$$
DELIMITER ;

CALL convert_all_tables();
DROP PROCEDURE convert_all_tables;

正文完
 0
寻常只是闲
版权声明:本站原创文章,由 寻常只是闲 于2025-06-10发表,共计7712字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)